package edu.cgpi.core.comando;

import java.awt.event.MouseEvent;

import edu.cgpi.core.entidade.Ponto;
import edu.cgpi.core.entidade.grafico.Imagem;
import edu.cgpi.core.util.FabricaImagens;
import edu.cgpi.core.util.TipoImagem;
import edu.cgpi.view.GerenciadorUI;
import edu.cgpi.view.PainelDesenho;

public class CliqueArraste extends AbstractComando {

	public CliqueArraste(PainelDesenho painelDesenho) {
		super(painelDesenho);
	}

	@Override
	public void mouseDragged(MouseEvent evt) {
		Ponto pontoAtual = new Ponto((double) evt.getX(), (double) evt.getY());
		painelDesenho.getImagemEmConstrucao().atualizar(pontoAtual);
		painelDesenho.repaint();
	}

	@Override
	public void mousePressed(MouseEvent evt) {
		Ponto pontoAtual = new Ponto((double) evt.getX(), (double) evt.getY());
		TipoImagem tipoImagem = GerenciadorUI.getInstance().getPainelBotoes().getTipoImagemSelecionada();
		Imagem imagem = FabricaImagens.criarImagem(tipoImagem, pontoAtual, pontoAtual);
		painelDesenho.setImagemEmConstrucao(imagem);
		painelDesenho.repaint();
	}

	@Override
	public void mouseReleased(MouseEvent evt) {
		painelDesenho.adicionar(painelDesenho.getImagemEmConstrucao());
		painelDesenho.clearImagemEmConstrucao();
		painelDesenho.repaint();
	}
}